package ru.compft.web.view;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import ru.compft.common.data.Module;
import ru.compft.common.data.ModulePage;
import ru.compft.common.utils.GlobalConstants;
import ru.compft.web.WebConst;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;
import java.util.List;

/**
 * User: VVasiliev
 * Date: 14.06.12
 * Time: 13:32
 * Бин хранящий текущую страницу, на которй находится пользователь
 * Нужен для навигации по страницам
 */
@ManagedBean(name = WebConst.CURRENT_VIEW)
@SessionScoped
public class CurrentView implements Serializable {
    private static final long serialVersionUID = -6165062103335862076L;

    private static final Logger logger = LoggerFactory.getLogger(CurrentView.class);

    public static final String MODULE_PARAM = "module";
    public static final String TAB_PARAM = "tab";
    public static final String PAGE_PARAM = "page";

    private Module currentModule;
    private List<ModulePage> pageList;  // список всех страниц для текущего модуля

    private String module;
    private String tab;
    private String page;
    private String action;

    public Module getCurrentModule() {
        return currentModule;
    }

    public void setCurrentModule(Module currentModule) {
        this.currentModule = currentModule;
    }

    public String getCurrentPageCode() {
//        final ServletRequest servletRequest = (ServletRequest) FacesUtils.getExternalContext().getRequest();
//        final String tab = servletRequest.getParameter("tab");

        //        System.out.println(" ------- getCurrentPageCode tab = " + tab);

        return StringUtils.hasText(tab) ? tab : GlobalConstants.EMPTY;
//        return GlobalConstants.EMPTY;
    }

    public List<ModulePage> getPageList() {
        return pageList;
    }

    public void setPageList(List<ModulePage> pageList) {
        this.pageList = pageList;
    }

    public String getModule() {
        return module;
    }

    public void setModule(String module) {
        this.module = module;
    }

    public String getTab() {
//        System.out.println("++++++++++++++ tab = " + tab);
        return tab;
    }

    public void setTab(String tab) {
        System.out.println("++++++++++++++ set tab = " + tab);
        this.tab = tab;
    }

    public String getPage() {
//        System.out.println("++++++++++++++ page = " + page);
        return page;
    }

    public void setPage(String page) {
        System.out.println("++++++++++++++ set page = " + page);
        this.page = page;
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

}
